Matthias Clasen [Mon, 6 Jan 2020 05:12:21 +0000 (00:12 -0500)]
Replace gtk_drop_target_attach/detach
Since drop targets are now just event controller,
gtk_widget_add/remove_controller works just fine
for them.
Matthias Clasen [Mon, 6 Jan 2020 04:49:22 +0000 (23:49 -0500)]
Use normal event propagation for DND events
This works just fine, now that drop targets are
event controllers. There is only a very vestigial
gtk_drag_dest_handle_event() left that deals with
corner cases.
Matthias Clasen [Mon, 6 Jan 2020 04:09:26 +0000 (23:09 -0500)]
Get rid of GtkDragDestInfo
We can just attach the GtkDropTarget directly to
the GdkDrop.
Matthias Clasen [Mon, 6 Jan 2020 03:53:53 +0000 (22:53 -0500)]
Turn GtkDropTarget into an event controller
We are still propagating the drag events manually,
but we are now calling gtk_widget_run_controllers
to pass them to drop targets.
Matthias Clasen [Mon, 6 Jan 2020 02:17:46 +0000 (21:17 -0500)]
More internal restructuring
Matthias Clasen [Mon, 6 Jan 2020 02:08:27 +0000 (21:08 -0500)]
dnd: Another internal refactoring step
Matthias Clasen [Mon, 6 Jan 2020 02:07:40 +0000 (21:07 -0500)]
gdk: Make gdk_event_set_coords support dnd events
GTK event propagation code relies on this working.
Matthias Clasen [Mon, 6 Jan 2020 01:45:28 +0000 (20:45 -0500)]
dnd: More internal restructuring
Matthias Clasen [Mon, 6 Jan 2020 01:39:32 +0000 (20:39 -0500)]
dnd: Some internal restructuring
Nudge the code towards being like event controllers.
Matthias Clasen [Mon, 6 Jan 2020 01:31:58 +0000 (20:31 -0500)]
Drop an unused define
Matthias Clasen [Mon, 6 Jan 2020 01:31:12 +0000 (20:31 -0500)]
Stop passing timestamps around
We were not using these in a useful way in the end,
so stop passing them around.
Matthias Clasen [Sun, 5 Jan 2020 22:27:26 +0000 (17:27 -0500)]
droptarget: Drop the track-motion property
It does not have any effect anymore.
Update all callers
Matthias Clasen [Sun, 5 Jan 2020 22:23:50 +0000 (17:23 -0500)]
droptarget: Drop defaults flags
These no longer have any effect.
Update all callers.
Matthias Clasen [Sun, 5 Jan 2020 20:54:46 +0000 (15:54 -0500)]
Simplify some drag dest internals
Change things around to make the default handler
of GtkDropTarget::drag-motion implement the default
handling. Always emit ::drag-motion and ::drag-leave,
and always arm the drop target.
This makes the GTK_DEST_DEFAULT_MOTION flag and
the ::track-motion property unnecessary.
Drop targets that are purely after track-motion
handling for ui switching purposes, such as
GtkStackSwitcher, will have to undo the automatic
arming in a notify::armed handler.
Matthias Clasen [Sun, 5 Jan 2020 14:49:45 +0000 (09:49 -0500)]
Drop GTK_DEST_DEFAULT_HIGHLIGHT
Redo highlight handling slightly. GtkDropTarget now has
a ::armed property that can be tracked to do custom highlighting,
and we always add the dnd style class to armed drop sites.
Matthias Clasen [Sun, 5 Jan 2020 14:18:47 +0000 (09:18 -0500)]
dragdest: Clean up internals
Remove the no-longer needed GtkDragDest struct
and just attach the GtkDropTarget directly.
Matthias Clasen [Sat, 4 Jan 2020 17:09:58 +0000 (12:09 -0500)]
testdnd2: Add a test for ASK handling
It is a bit unfortunate that we need to extend the
lifespan of the drop object by keeping our own
ref, but I don't see a better way of doing it.
Matthias Clasen [Fri, 3 Jan 2020 21:32:46 +0000 (16:32 -0500)]
Remove gtkdnd.h
Matthias Clasen [Fri, 3 Jan 2020 21:26:15 +0000 (16:26 -0500)]
Remove gdk_drag_get_data
This is not used anymore, so we can remove it,
and the GtkDropTarget::drag-data-received signal
that it emits.
Matthias Clasen [Fri, 3 Jan 2020 21:15:22 +0000 (16:15 -0500)]
treeview: Stop using ::drag-data-received
Matthias Clasen [Fri, 3 Jan 2020 07:22:56 +0000 (02:22 -0500)]
iconview: Avoid drag-data-received
Matthias Clasen [Fri, 3 Jan 2020 06:06:28 +0000 (01:06 -0500)]
testtreednd: Use the new asyn selection read
Matthias Clasen [Fri, 3 Jan 2020 05:46:31 +0000 (00:46 -0500)]
testlist3: Use async read api for selection
Matthias Clasen [Thu, 2 Jan 2020 13:46:30 +0000 (08:46 -0500)]
filechooser: Convert to GtkDropTarget
Matthias Clasen [Thu, 2 Jan 2020 06:26:02 +0000 (01:26 -0500)]
placessidebar: Port to GtkDropTarget
Matthias Clasen [Thu, 2 Jan 2020 06:00:44 +0000 (01:00 -0500)]
iconview: Port to GtkDropTarget
A small api change here is that
gtk_icon_view_enable_model_drag_dest now returns
a GtkDropTarget that can be used to connect signals.
Matthias Clasen [Fri, 3 Jan 2020 05:14:49 +0000 (00:14 -0500)]
Add an async read function for selection
This is meant as a replacement for ::drag-data-received
in cases where a #GtkSelectionData object is still needed,
such as when using GtkTreeModel DND support.
Matthias Clasen [Thu, 2 Jan 2020 14:09:22 +0000 (09:09 -0500)]
Remove old drag dest api
Matthias Clasen [Thu, 2 Jan 2020 15:12:44 +0000 (10:12 -0500)]
Move some remaining api over
Matthias Clasen [Thu, 2 Jan 2020 14:37:43 +0000 (09:37 -0500)]
listbox: Remove unhighlighting
This will have to be done differently, if necessary.
Matthias Clasen [Thu, 2 Jan 2020 14:01:20 +0000 (09:01 -0500)]
notebook: Convert to GtkDropTarget
Matthias Clasen [Thu, 2 Jan 2020 13:53:33 +0000 (08:53 -0500)]
testtreednd: Convert to GtkDropTarget
Matthias Clasen [Thu, 2 Jan 2020 13:51:20 +0000 (08:51 -0500)]
testnotebookdnd: Fix, partially
Make this mostly work again.
Matthias Clasen [Thu, 2 Jan 2020 13:37:06 +0000 (08:37 -0500)]
testtoolbar: Convert to GtkDropTarget
Matthias Clasen [Thu, 2 Jan 2020 13:21:49 +0000 (08:21 -0500)]
testlist3: Convert to GtkDropTarget
Matthias Clasen [Thu, 2 Jan 2020 06:46:26 +0000 (01:46 -0500)]
testdnd: Convert to GtkDropTarget
Matthias Clasen [Thu, 2 Jan 2020 06:31:14 +0000 (01:31 -0500)]
testdnd2: Port to GtkDropTarget
Matthias Clasen [Thu, 2 Jan 2020 05:40:35 +0000 (00:40 -0500)]
treeview: Port to GtkDropTarget
A small api change here is that
gtk_tree_view_enable_model_drag_dest now returns
a GtkDropTarget that can be used to connect signals.
Matthias Clasen [Thu, 2 Jan 2020 05:21:19 +0000 (00:21 -0500)]
textview: Port to GtkDropTarget
Matthias Clasen [Thu, 2 Jan 2020 06:51:07 +0000 (01:51 -0500)]
filechoserbutton: Convert to GtkDropTarget
Matthias Clasen [Thu, 2 Jan 2020 05:21:01 +0000 (00:21 -0500)]
stackswitcher: Port to GtkDropTarget
Matthias Clasen [Thu, 2 Jan 2020 04:28:51 +0000 (23:28 -0500)]
expander: Port to GtkDropTarget
Matthias Clasen [Thu, 2 Jan 2020 04:28:33 +0000 (23:28 -0500)]
window: Port to GtkDragDest
Matthias Clasen [Thu, 2 Jan 2020 01:47:19 +0000 (20:47 -0500)]
text: Port to GtkDropTarget
Matthias Clasen [Wed, 1 Jan 2020 20:19:04 +0000 (15:19 -0500)]
colorswatch: Port to GtkDropTarget
Matthias Clasen [Wed, 1 Jan 2020 19:40:49 +0000 (14:40 -0500)]
colorbutton: Port to GtkDropTarget
Matthias Clasen [Wed, 1 Jan 2020 19:19:48 +0000 (14:19 -0500)]
calendar: Port to GtkDropTarget
Matthias Clasen [Wed, 1 Jan 2020 18:13:39 +0000 (13:13 -0500)]
gtk-demo: Convert clipboard demo to GtkDropTarget
Matthias Clasen [Thu, 2 Jan 2020 18:05:29 +0000 (13:05 -0500)]
drop: Add a convenience api
This is a question that drag-drop handlers frequently
need to answer, so make it easy.
Matthias Clasen [Sun, 5 Jan 2020 14:36:02 +0000 (09:36 -0500)]
dragdest: doc improvements
Matthias Clasen [Tue, 31 Dec 2019 06:54:43 +0000 (01:54 -0500)]
Add a GtkDropTarget object
Add an explicit GtkDropTarget object, and move the destination-side
DND signals here. The object is used by connecting to its signals
and attaching it to a widget with gtk_drop_target_attach().
Matthias Clasen [Wed, 1 Jan 2020 19:08:14 +0000 (14:08 -0500)]
Hook up the GtkDragSource docs
Matthias Clasen [Wed, 1 Jan 2020 18:22:29 +0000 (13:22 -0500)]
Move the rest of the drag-source api over
Just reshuffling some source.
Matthias Clasen [Wed, 1 Jan 2020 17:55:21 +0000 (12:55 -0500)]
docs: Mention DND in the migration guide
Matthias Clasen [Wed, 1 Jan 2020 07:25:18 +0000 (02:25 -0500)]
Remove traditional drag source API
gtk_drag_source_set, gtk_drag_begin, related apis
and the GtkWidget source-side signals have all been
replaced by GtkDragSource.
Matthias Clasen [Wed, 1 Jan 2020 02:10:15 +0000 (21:10 -0500)]
tests: Convert to GtkDragSource
Some tests, such as testimage did not have
anything particularly worth keeping, so
were removed instead of fixed.
Matthias Clasen [Tue, 31 Dec 2019 22:02:59 +0000 (17:02 -0500)]
notebook: Port to GtkDragSource
Matthias Clasen [Wed, 1 Jan 2020 07:24:50 +0000 (02:24 -0500)]
filechooser: Port to GtkDragSource
Matthias Clasen [Tue, 31 Dec 2019 22:05:24 +0000 (17:05 -0500)]
treeview: Port to GtkDragSource
A small api change here is that
gtk_tree_view_enable_model_drag_source now returns
a GtkDragSource that can be used to connect signals.
Matthias Clasen [Wed, 1 Jan 2020 06:44:01 +0000 (01:44 -0500)]
placessidebar: Port to GtkDragSource
Matthias Clasen [Tue, 31 Dec 2019 22:04:01 +0000 (17:04 -0500)]
iconview: Port to GtkDragSource
A small api change here is that
gtk_icon_view_enable_model_drag_source now returns
a GtkDragSource that can be used to connect signals.
Matthias Clasen [Wed, 1 Jan 2020 06:25:02 +0000 (01:25 -0500)]
Add another callback-based provider
This one can be used in cases where data needs
to be served in multiple formats that may not
all be covered by content serializers.
Matthias Clasen [Wed, 1 Jan 2020 02:06:43 +0000 (21:06 -0500)]
iconbrowser: Port to GtkDragSource
Matthias Clasen [Wed, 1 Jan 2020 01:30:32 +0000 (20:30 -0500)]
gtk-demo: Convert the clipboard demo to GtkDragSource
Matthias Clasen [Tue, 31 Dec 2019 18:13:17 +0000 (13:13 -0500)]
pathbar: Convert to GtkDragSource
Matthias Clasen [Tue, 31 Dec 2019 16:58:27 +0000 (11:58 -0500)]
colorswatch: Convert to GtkDragSource
Matthias Clasen [Tue, 31 Dec 2019 15:11:37 +0000 (10:11 -0500)]
colorbutton: Port to GtkDragSource
Matthias Clasen [Tue, 31 Dec 2019 16:48:22 +0000 (11:48 -0500)]
Add a generic callback content provider
This one is convenient to use in cases where a
drag is just serving an existing GType which
is covered by content serializers.
Matthias Clasen [Tue, 31 Dec 2019 15:10:49 +0000 (10:10 -0500)]
Add (de)serializers for GdkRGBA
This is a format that we use in various
color picker widgets, so support it in GDK.
Matthias Clasen [Tue, 31 Dec 2019 14:24:13 +0000 (09:24 -0500)]
textview: Port to GtkDragSource
Matthias Clasen [Tue, 31 Dec 2019 14:23:25 +0000 (09:23 -0500)]
textbuffer: Add a content provider api
We need a content provider for the selection,
to implement DND, and the text buffer already
has one. Just add an api to get it.
Matthias Clasen [Tue, 31 Dec 2019 13:20:54 +0000 (08:20 -0500)]
text: Convert to GtkDragSource
Matthias Clasen [Tue, 31 Dec 2019 07:45:02 +0000 (02:45 -0500)]
entry: Port icon dnd to GtkDragSource
This requires a small change in the api,
since we need to provide a GdkContentProvider now.
Matthias Clasen [Tue, 31 Dec 2019 07:20:49 +0000 (02:20 -0500)]
calendar: Port to GtkDragSource
Matthias Clasen [Tue, 31 Dec 2019 03:34:50 +0000 (22:34 -0500)]
linkbutton: Port to GtkDragSource
Matthias Clasen [Tue, 31 Dec 2019 02:43:22 +0000 (21:43 -0500)]
label: Port to GtkDragSource
Matthias Clasen [Tue, 31 Dec 2019 22:01:09 +0000 (17:01 -0500)]
dnd: Patch up gtk_drag_get_source_widget
This is temporary until gtk_drag_dest_set users
have been ported over.
Matthias Clasen [Mon, 30 Dec 2019 19:12:08 +0000 (14:12 -0500)]
Add a GtkDragSource object
Add an explicit GtkDragSource object, and move the source-side
DND signals here. The object can be used on the spot, by calling
gtk_drag_source_drag_begin() yourself, or for static drag-source
configuration, by calling gtk_drag_source_attach(). In the latter
case, we set up and conect a drag gesture to trigger the drag_begin
call.
Matthias Clasen [Wed, 1 Jan 2020 18:50:25 +0000 (13:50 -0500)]
marshalers: Add another
Timm Bäder [Wed, 8 Jan 2020 19:59:11 +0000 (20:59 +0100)]
rename CODE-OWNERS to CODEOWNERS
gitlab reads the new filename but not the old one.
Emmanuele Bassi [Wed, 8 Jan 2020 15:46:19 +0000 (15:46 +0000)]
Merge branch 'fixed-fixed' into 'master'
fixed layout: Actually set child transforms
See merge request GNOME/gtk!1292
Matthias Clasen [Wed, 8 Jan 2020 15:34:04 +0000 (10:34 -0500)]
fixed layout: Actually set child transforms
The code was unintentionally appending to the
existing child transform, leading to ever-moving
children when you call gtk_fixed_put.
Alex Samorukov [Wed, 8 Jan 2020 14:15:45 +0000 (14:15 +0000)]
Merge branch 'master-fix-set-functions' into 'master'
quartz: impl_class->set_functions listed twice in the object
See merge request GNOME/gtk!1283
Alex Samorukov [Wed, 8 Jan 2020 14:15:45 +0000 (14:15 +0000)]
impl_class->set_functions listed twice in the object
Alex Samorukov [Wed, 8 Jan 2020 14:10:06 +0000 (14:10 +0000)]
Merge branch 'master-eventloop-fix' into 'master'
Move `[NSApplication sharedApplication]` after event loop init to avoid window focus issues (closes #2342).
See merge request GNOME/gtk!1286
Alex Samorukov [Wed, 8 Jan 2020 14:10:06 +0000 (14:10 +0000)]
move [NSApplication sharedApplication] after _gdk_quartz_events_init() to avoid initialization issues
(cherry picked from commit
46c2451c5a3cd42aa5a94935bfc850a484288ff3)
Timm Bäder [Wed, 8 Jan 2020 09:27:51 +0000 (09:27 +0000)]
Merge branch 'check-for-sincosf' into 'master'
gsk/gsktransform.c: Fix building on non-GCC
See merge request GNOME/gtk!1291
Chun-wei Fan [Wed, 8 Jan 2020 09:05:44 +0000 (17:05 +0800)]
build: Check for sincosf()
sincosf() is really a GCC-specific function that may more may not be
supported on non-GCC compilers, so we want to check for it, otherwise we
use a fallback implementation, not unlike the one in
demos/gtk-demo/gtkgears.c.
Timm Bäder [Tue, 7 Jan 2020 16:15:02 +0000 (17:15 +0100)]
gl renderer: Handle repeat nodes with invisible children
We can handle this pretty easily by normally drawing the other
(visible) child node, if any.
Timm Bäder [Tue, 7 Jan 2020 16:14:32 +0000 (17:14 +0100)]
testsuite: Add a testcase for blend nodes with invisible children
Timm Bäder [Mon, 6 Jan 2020 09:22:54 +0000 (10:22 +0100)]
sizerequest: Remove _gtk_widget_get_preferred_size_and_baseline
Private and unused function.
Timm Bäder [Sat, 4 Jan 2020 07:54:58 +0000 (08:54 +0100)]
transform: Properly compare scale transforms
If the epsilon we use there is too much, we can run into rendering
errors because the GPU will use the actual scale value.
Timm Bäder [Fri, 3 Jan 2020 16:07:39 +0000 (17:07 +0100)]
rendernodepaintable: ceil() bounds for intrinsic size
Otherweise we floor() implicitly when casting to int, resulting in
slight scaling later.
Timm Bäder [Thu, 2 Jan 2020 13:05:30 +0000 (14:05 +0100)]
label: Fix assumptions regaring link
Timm Bäder [Thu, 2 Jan 2020 13:03:21 +0000 (14:03 +0100)]
gltextureatlas: Packing must succeed here
Timm Bäder [Thu, 2 Jan 2020 12:52:14 +0000 (13:52 +0100)]
Window: Avoid some redundant assignments
Timm Bäder [Thu, 2 Jan 2020 12:49:01 +0000 (13:49 +0100)]
colorswatch: Avoid redundant assignment
Timm Bäder [Thu, 2 Jan 2020 09:28:08 +0000 (10:28 +0100)]
transform: Scale+translate bounds directyl
Make these two code paths look the same.
Timm Bäder [Thu, 2 Jan 2020 09:04:29 +0000 (10:04 +0100)]
widget: Use cssnode api to get the filter value
it's confusing that we use GtkStyleContext here while we use the CssNode
directly elsewhere.
Timm Bäder [Tue, 31 Dec 2019 13:03:42 +0000 (14:03 +0100)]
transform: Compare class before ->next